利用nginx/apache代理wss 实现 小程序 端口 反向代理

您所在的位置:网站首页 nginx 进行反向代理 利用nginx/apache代理wss 实现 小程序 端口 反向代理

利用nginx/apache代理wss 实现 小程序 端口 反向代理

2023-07-03 02:30| 来源: 网络整理| 查看: 265

除了用Workerman自身的SSL,也可以利用nginx/apache作为wss代理转发给workerman

我就是栽在这大坑里(nginx/apache代理wss,workerman部分就不要设置ssl,否则将无法连接,两个方法2选1)官方推荐用nginx/apache代理wss

如果是微信小程序,要添加合法域名

格式:wss://域名

结尾不要加/,可以:端口

 

 

nginx配置参考

前提条件及准备工作:

1、已经安装nginx,版本不低于1.3

2、假设Workerman监听的是8282端口(websocket协议)

3、已经申请了证书(pem/crt文件及key文件)放在了/etc/nginx/conf.d/ssl下

4、打算利用nginx开启443端口对外提供wss代理服务(端口可以根据需要修改)

5、nginx一般作为网站服务器运行着其它服务,为了不影响原来的站点使用,这里使用地址 域名/wss 作为wss的代理入口。也就是客户端连接地址为 wss://域名/wss

nginx配置类似如下:

# websockets 友情提示可以放在伪静态那,安全点 location /wss { proxy_pass http://127.0.0.1:9527; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Real-IP $remote_addr; }

测试链接地址

wss://域名/wss,/wss就是对应反向代理的location /wss 

wss://域名/wss 利用apache代理wss

也可以利用apache作为wss代理转发给workerman(注意如使用apache代理SSL,则workerman部分千万不要设置ssl,否则将无法连接)。

准备工作:

1、GatewayWorker 监听 8282 端口(websocket协议)

2、已经申请了ssl证书, 放在了/server/httpd/cert/ 下

3、利用apache转发443端口至指定端口8282

4、httpd-ssl.conf 已加载

5、openssl 已安装

启用 proxy_wstunnel_module 模块

LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

 配置SSL及代理

#extra/httpd-ssl.conf DocumentRoot "/网站/目录" ServerName 域名 # Proxy Config SSLProxyEngine on ProxyRequests Off ProxyPass /wss ws://127.0.0.1:8282/wss ProxyPassReverse /wss ws://127.0.0.1:8282/wss # 添加 SSL 协议支持协议,去掉不安全的协议 SSLProtocol all -SSLv2 -SSLv3 # 修改加密套件如下 SSLCipherSuite HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM SSLHonorCipherOrder on # 证书公钥配置 SSLCertificateFile /server/httpd/cert/your.pem # 证书私钥配置 SSLCertificateKeyFile /server/httpd/cert/your.key # 证书链配置, SSLCertificateChainFile /server/httpd/cert/chain.pem

测试

wss://域名/wss



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3